{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Multi-class (Nonlinear) SVM Example\n",
    "--------------------------------\n",
    "\n",
    "This function wll illustrate how to implement the gaussian kernel with multiple classes on the iris dataset.\n",
    "\n",
    "Gaussian Kernel:\n",
    "\n",
    "$$K(x_1, x_2) = e^{-\\gamma \\cdot (x_1 - x_2)^2}$$\n",
    "\n",
    "X : (Sepal Length, Petal Width)\n",
    "\n",
    "Y: (I. setosa, I. virginica, I. versicolor) (3 classes)\n",
    "\n",
    "Basic idea: introduce an extra dimension to do one vs all classification.\n",
    "\n",
    "The prediction of a point will be the category with the largest margin or distance to boundary.\n",
    "\n",
    "We start by loading the necessary libraries."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.6/site-packages/h5py/__init__.py:34: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
      "  from ._conv import register_converters as _register_converters\n"
     ]
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "from sklearn import datasets\n",
    "from tensorflow.python.framework import ops\n",
    "ops.reset_default_graph()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Start a computational graph session."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "sess = tf.Session()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we load the iris data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load the data\n",
    "# iris.data = [(Sepal Length, Sepal Width, Petal Length, Petal Width)]\n",
    "iris = datasets.load_iris()\n",
    "x_vals = np.array([[x[0], x[3]] for x in iris.data])\n",
    "y_vals1 = np.array([1 if y==0 else -1 for y in iris.target])\n",
    "y_vals2 = np.array([1 if y==1 else -1 for y in iris.target])\n",
    "y_vals3 = np.array([1 if y==2 else -1 for y in iris.target])\n",
    "y_vals = np.array([y_vals1, y_vals2, y_vals3])\n",
    "class1_x = [x[0] for i,x in enumerate(x_vals) if iris.target[i]==0]\n",
    "class1_y = [x[1] for i,x in enumerate(x_vals) if iris.target[i]==0]\n",
    "class2_x = [x[0] for i,x in enumerate(x_vals) if iris.target[i]==1]\n",
    "class2_y = [x[1] for i,x in enumerate(x_vals) if iris.target[i]==1]\n",
    "class3_x = [x[0] for i,x in enumerate(x_vals) if iris.target[i]==2]\n",
    "class3_y = [x[1] for i,x in enumerate(x_vals) if iris.target[i]==2]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Declare the batch size"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "batch_size = 50"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Initialize placeholders and create the variables for multiclass SVM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Initialize placeholders\n",
    "x_data = tf.placeholder(shape=[None, 2], dtype=tf.float32)\n",
    "y_target = tf.placeholder(shape=[3, None], dtype=tf.float32)\n",
    "prediction_grid = tf.placeholder(shape=[None, 2], dtype=tf.float32)\n",
    "\n",
    "# Create variables for svm\n",
    "b = tf.Variable(tf.random_normal(shape=[3,batch_size]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create the Gaussian Kernel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Gaussian (RBF) kernel\n",
    "gamma = tf.constant(-10.0)\n",
    "dist = tf.reduce_sum(tf.square(x_data), 1)\n",
    "dist = tf.reshape(dist, [-1,1])\n",
    "sq_dists = tf.multiply(2., tf.matmul(x_data, tf.transpose(x_data)))\n",
    "my_kernel = tf.exp(tf.multiply(gamma, tf.abs(sq_dists)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Declare a function that will do reshaping and batch matrix multiplication"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Declare function to do reshape/batch multiplication\n",
    "def reshape_matmul(mat, _size):\n",
    "    v1 = tf.expand_dims(mat, 1)\n",
    "    v2 = tf.reshape(v1, [3, _size, 1])\n",
    "    return(tf.matmul(v2, v1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can compute the SVM model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute SVM Model\n",
    "first_term = tf.reduce_sum(b)\n",
    "b_vec_cross = tf.matmul(tf.transpose(b), b)\n",
    "y_target_cross = reshape_matmul(y_target, batch_size)\n",
    "\n",
    "second_term = tf.reduce_sum(tf.multiply(my_kernel, tf.multiply(b_vec_cross, y_target_cross)),[1,2])\n",
    "loss = tf.reduce_sum(tf.negative(tf.subtract(first_term, second_term)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create the same RBF kernel for a set of prediction points (used on a grid of points at the end)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Gaussian (RBF) prediction kernel\n",
    "rA = tf.reshape(tf.reduce_sum(tf.square(x_data), 1),[-1,1])\n",
    "rB = tf.reshape(tf.reduce_sum(tf.square(prediction_grid), 1),[-1,1])\n",
    "pred_sq_dist = tf.add(tf.subtract(rA, tf.multiply(2., tf.matmul(x_data, tf.transpose(prediction_grid)))), tf.transpose(rB))\n",
    "pred_kernel = tf.exp(tf.multiply(gamma, tf.abs(pred_sq_dist)))\n",
    "\n",
    "prediction_output = tf.matmul(tf.multiply(y_target,b), pred_kernel)\n",
    "prediction = tf.argmax(prediction_output-tf.expand_dims(tf.reduce_mean(prediction_output,1), 1), 0)\n",
    "accuracy = tf.reduce_mean(tf.cast(tf.equal(prediction, tf.argmax(y_target,0)), tf.float32))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create the optimization and variable initializer operations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Declare optimizer\n",
    "my_opt = tf.train.GradientDescentOptimizer(0.01)\n",
    "train_step = my_opt.minimize(loss)\n",
    "\n",
    "# Initialize variables\n",
    "init = tf.global_variables_initializer()\n",
    "sess.run(init)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We now start the training loop for the multiclass SVM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Step #25\n",
      "Loss = -356.52252\n",
      "Step #50\n",
      "Loss = -694.0222\n",
      "Step #75\n",
      "Loss = -1031.522\n",
      "Step #100\n",
      "Loss = -1369.022\n"
     ]
    }
   ],
   "source": [
    "# Training loop\n",
    "loss_vec = []\n",
    "batch_accuracy = []\n",
    "for i in range(100):\n",
    "    rand_index = np.random.choice(len(x_vals), size=batch_size)\n",
    "    rand_x = x_vals[rand_index]\n",
    "    rand_y = y_vals[:,rand_index]\n",
    "    sess.run(train_step, feed_dict={x_data: rand_x, y_target: rand_y})\n",
    "    \n",
    "    temp_loss = sess.run(loss, feed_dict={x_data: rand_x, y_target: rand_y})\n",
    "    loss_vec.append(temp_loss)\n",
    "    \n",
    "    acc_temp = sess.run(accuracy, feed_dict={x_data: rand_x,\n",
    "                                             y_target: rand_y,\n",
    "                                             prediction_grid:rand_x})\n",
    "    batch_accuracy.append(acc_temp)\n",
    "    \n",
    "    if (i+1)%25==0:\n",
    "        print('Step #' + str(i+1))\n",
    "        print('Loss = ' + str(temp_loss))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For a pretty picture, to see the results, we create a fine grid of points to label/color for each class."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create a mesh to plot points in\n",
    "x_min, x_max = x_vals[:, 0].min() - 1, x_vals[:, 0].max() + 1\n",
    "y_min, y_max = x_vals[:, 1].min() - 1, x_vals[:, 1].max() + 1\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),\n",
    "                     np.arange(y_min, y_max, 0.02))\n",
    "grid_points = np.c_[xx.ravel(), yy.ravel()]\n",
    "grid_predictions = sess.run(prediction, feed_dict={x_data: rand_x,\n",
    "                                                   y_target: rand_y,\n",
    "                                                   prediction_grid: grid_points})\n",
    "grid_predictions = grid_predictions.reshape(xx.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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evg1OjpVFTXpzeNbvK3NBuy8vDy6dOlCr1693KqA/Px88vPzSUtLA+Dcc88NWIU0b9484uLigMCNmm+88QZvvvkmd911FxdeeCHvvvsuu3btAuDrr79m/fr1pKens3bt2rA3ys+bN4/Y2Fj69OnDvHnzUFW2b9/O+vXrycjIcKt9qhPH7t27yc/P9+uNEhMTQ1paWqXjqCqTJk3iwIEDzJo1CwjeEJyVleV+9oFcd911DBkyhKlTp7J582a/dZmZmRx//PHExMQwePBgli1bRllZGfv372fhwoWcddZZ7jULxaGqw7KysujVqxcxMTGcc845QOgdEzIzM+nfv79fPD179uS+++7j3//+N6+88krIcTqmT5/ODz/8wIsvvkiLFi1C2ueMM844ZBVSQUEBu3btqpOeR2BzHzUozn+e3r17V+qJ4nwJbNu2jQMHDvjtl5uby8KFC92fil/A8+fPp3///rRq1apaX1yrVq2qsg0iNzeXzp07+8XqW6cNnqQA/v/Zy8vLWbBgASNGjKBXr16VvuC2bdvGtddey8CBA7nhhhs499xz2b9/P2+//bZ7Pk69dUxMTMh10WvXrnUTS6hUlfnz53PKKacwadIkvvvuO7Kystz69mBJoaysjHfffde9Ju+9955fLxWnLaRib5RASWH27NksXryY+++/n3HjxpGQkBAwKagq2dnZbjyBxMbG8tJLL7Fv3z4mTZrkXt/du3ezZs0aMjIy3PPas2cPa9as4cMPP6S4uNi9lqE6VLL0jbVbt24MGDCAefPmHfK4+/fvZ+XKlW6svqZOncrQoUO57rrrAg6q/PnnnwMOdvviiy945JFHmDx5MsOHDz9kDI7mzZtzxhlnsGDBAvdav//++37/b+qyOypg1UcNyeWXX66pqamqqnrbbbdpTEyMlpSUaGlpqbZo0UITExMDFrFPOeUUt3oD8Ov14dRTP/jgg3rCCSfokCFDQorlyy+/VEDff//9gOv37NmjgN5///16//33K6BFRUX6xBNPKKC5ubnutunp6dq1a1fdvXu3qqr+5z//UUBfe+01veyyyzQlJcWvuH/jjTdqo0aNNDs7W1U91SqdOnXS0aNHa3l5uR555JF66qmnqqrqySefrEcfffQhqwuKi4s1ISFBJ0+eHNL5O1atWqWAPv/887p161aNiYnR2267TW+55RZt1KiR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lhZygnIkJye7+1esP6+pv/3tb7Rv357HH3+cI444wu9Levz48RQUFPDqq69y0003MWDAAMaOHcsFF1zA3Xffze23387ZZ59d7Vh8R3EH+gwyMjL46aef+OKLL4DgXxTOcRISEjjjjDMCbnPsscfStGlTPvroI37++Wc3OVQ1mrm+VOyu6/weibHWloyMDNatW+dOrV6XbQqWFCLE4ZQUcnNz2bVrV6X/JEcddRTx8fEMHTrUXebcnW/atIny8vJqJwXnPaqa1dMptYhIwBG2e/bsoaioyK+k0LVrVxITEznuuONCjsXX0KFDadKkCaNHj67R/hUlJyfz/PPPA5W/pE877TQSExPp3bs3t99+u7v88ccfp1WrVn4zflaHc+7Bkolzd//aa68RGxvr9/n5OuKII0hOTmbUqFHuzUBFjRo1YtCgQbz44ot06dKFu+66i/bt25OamlqtmOtCWloaW7ZsobCwEPA8VCgxMZEjjjiiniMLH+dav/7668THx9OuXbs6e+9GdfZOpkqHU1JwpkwYMGCA3/K4uDg+//xzvy995+48Ly+P+Ph49u3bV+2SAni++P/4xz9WWq/qeUjLuHHj3O2fffZZysvL3Z4iTs8j35JCTEwMS5Ys8VtWHffccw9XXHEFSUlJNdo/kBEjRrBkyRL69Onjtzw+Pp5PPvmENm3a0KRJE3d5SkoKX375JeXl5bRp06ba73fhhRfSvXv3gFVHAH379iUuLo7vvvuO7t2706hR4P++MTExfPTRR4f8LJ9//nk+/fRT9/Wxxx5b7Zjrgu/fXH5+Pv/617+46667qp10f0vS09Np1KgR3333nTu/U12xpBABVPWwSgqZmZkkJCRU+vIC3LYEh3N3mZub6/6hVado2qZNG1JTU4N2S92+fTs7d+70G1ldUlLCjz/+6L6P72hmX3379g05jopat25NOB7VOmzYsIDL+/XrF3D54dT9NmnShJNPPrnK9f379yczM/OQ1yxYfL6OPPLIuu3qWEPO39Jnn33GY489Rr9+/dxnKDRUTZs25bjjjmPlypV12p4AVn0UEfbs2eP2e69JSSEzM5P09HT3YStV8S0p1LQRq6rHPjrVSk41U6CZLp2G7pqWCqKZU61Q118U9emII46gWbNm3HHHHRQWFjJr1qyQ/tZ/65xrXdeJ25JCBHBKCVD9ksK+fftYtWpV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H4BbgWGquj+M8QDQokUL93crKRgTWfLy8mjRogVdu3a1KWhqQFXZuXMneXl5dOvWrUbHCGf10XKgp4h0E5E44Hxgke8GItIXeBYYrarbwxiLy3n6GlhJwZhIs2/fPlJSUiwh1JCIkJKSclglrbAlBVUtBa4F3gPWAvNUNUtE7hKR0d7N/hdoDswXka9FZFGQw9Uqp13BSgrGRB5LCIfncD+/sLYpqOpiYHGFZTN8fv9DON8/mMTERLZv324lBWOMqSDqRjTDr43NVlIwxgSycOFCRITvvvuuvkOpc1GdFKykYIwJZM6cOQwdOpQ5c+aE7T3KysrCduzDERFdUuuatSkYE/mmTZvG119/XavH7NOnD48++miV2+zZs4f//Oc/fPLJJ5x55pnceeedADz44IP84x//ICYmhhEjRvDAAw+wfv16Jk+eTH5+PrGxscyfP5/c3FxmzpzJO++8A8C1115Leno6l1xyCV27duW8887jgw8+4KabbmL37t0899xzHDhwgB49evDqq6/StGlTtm3bxuTJk8nJyQHg6aef5t1336VVq1ZMmzYNgFtvvZU2bdpw3XXX1epnFJVJwUoKxphg3nrrLU4//XSOOuooUlJSWLlyJdu3b+ett95i2bJlNG3alIKCAgD+9Kc/ccsttzB27Fj27dtHeXk5ubm5VR4/JSWFVatWAbBz506uuOIKAKZPn86LL77IlClTmDp1KsOGDeNf//oXZWVl7Nmzhw4dOjBu3DimTZtGeXk5c+fO5auvvqr184/qpGAlBWMi16Hu6MNlzpw57t33+eefz5w5c1BVLr30UvdGslWrVuzevZtNmzYxduxYwDNoLBTnnXee+/uaNWuYPn06RUVF7Nmzh9NOOw2Ajz/+mFdeeQWA2NhYkpKSSEpKIiUlhdWrV7Nt2zb69u1LSkpKrZ23I6qTgpUUjDG+CgoK+Pjjj/n2228REcrKyhARzj333JCP0ahRI8rLy93XFccMNGvWzP39kksuYeHChRx33HHMmjWLJUuWVHnsyy+/nFmzZrF161Yuu+yykGOqjqhsaHbaFCwpGGN8LViwgIsuuoiffvqJjRs3kpubS7du3UhKSuLll19m717P/J0FBQW0aNGCTp06sXDhQgD279/P3r176dKlC9nZ2ezfv5+ioiI++uijoO+3e/du2rdvz8GDB3nttdfc5cOHD+fpp58GPA3SxcXFAIwdO5Z3332X5cuXu6WK2haVScGqj4wxgcyZM8etDnKcffbZbNmyhdGjR5Oenk6fPn2YOXMmAK+++ip///vfOfbYYxk8eDBbt26lc+fOjB8/nmOOOYbx48fTt2/foO939913M2jQIIYMGcLRRx/tLn/sscf45JNP+P3vf0///v3Jzs4GIC4ujpNPPpnx48cTGxsbhk8ARPWw5perc+np6bpixYrDOsbmzZt56qmnuOuuu4iJicq8aExEWrt2Lb169arvMCJWeXk5/fr1Y/78+fTs2TPodoE+RxFZqarph3qPqPxG7NChA/fcc48lBGPMb0Z2djY9evRg+PDhVSaEwxWVDc3GGPNbk5aW5o5bCCe7VTbGRJTfWpV2pDncz8+SgjEmYsTHx7Nz505LDDXkPE8h1DETgVj1kTEmYnTq1Im8vDwO97G70cx58lpNWVIwxkSMxo0b1/iJYaZ2WPWRMcYYlyUFY4wxLksKxhhjXL+5Ec0ikg/8VMPdU4EdtRjOb0U0nnc0njNE53lH4zlD9c+7i6q2PtRGv7mkcDhEZEUow7wbmmg872g8Z4jO847Gc4bwnbdVHxljjHFZUjDGGOOKtqTwXH0HUE+i8byj8ZwhOs87Gs8ZwnTeUdWmYIwxpmrRVlIwxhhTBUsKxhhjXFGTFETkdBH5XkTWi8gt9R1POIhIZxH5RESyRSRLRK7zLm8lIh+IyDrvvy3rO9baJiKxIrJaRN7xvu4mIsu81/sNEYmr7xhrm4gki8gCEflORNaKSEaUXOs/e/++14jIHBGJb2jXW0ReEpHtIrLGZ1nAaysef/ee+zci0u9w3jsqkoKIxAJPAiOANOACEUmr36jCohS4QVXTgOOBa7zneQvwkar2BD7yvm5orgPW+rx+EHhEVXsAhcDEeokqvB4D3lXVo4Hj8Jx/g77WItIRmAqkq+oxQCxwPg3ves8CTq+wLNi1HQH09P5MAp4+nDeOiqQADATWq2qOqh4A5gJj6jmmWqeqW1R1lff33Xi+JDriOdfZ3s1mA2fVT4ThISKdgDOAF7yvBTgFWODdpCGecxJwIvAigKoeUNUiGvi19moEJIhII6ApsIUGdr1V9TOgoMLiYNd2DPCKeiwFkkWkfU3fO1qSQkcg1+d1nndZgyUiXYG+wDKgrapu8a7aCrStp7DC5VHgJqDc+zoFKFLVUu/rhni9uwH5wMvearMXRKQZDfxaq+omYCbwM55kUAyspOFfbwh+bWv1+y1akkJUEZHmwD+Baaq6y3edevogN5h+yCIyCtiuqivrO5Y61gjoBzytqn2BX6hQVdTQrjWAtx59DJ6k2AFoRuVqlgYvnNc2WpLCJqCzz+tO3mUNjog0xpMQXlPVN72LtznFSe+/2+srvjAYAowWkY14qgVPwVPXnuytXoCGeb3zgDxVXeZ9vQBPkmjI1xrgD8CPqpqvqgeBN/H8DTT06w3Br22tfr9FS1JYDvT09lCIw9MwtaieY6p13rr0F4G1qvo3n1WLgIu9v18MvFXXsYWLqv5VVTupalc81/VjVf0T8AlwjnezBnXOAKq6FcgVkd95Fw0HsmnA19rrZ+B4EWnq/Xt3zrtBX2+vYNd2ETDB2wvpeKDYp5qp2qJmRLOIjMRT9xwLvKSq99ZzSLVORIYCnwPf8mv9+v/gaVeYBxyBZ9rx8apasRHrN09ETgJuVNVRItIdT8mhFbAauFBV99dnfLVNRPrgaVyPA3KAS/Hc6DXoay0idwLn4elttxq4HE8deoO53iIyBzgJz/TY24DbgYUEuLbe5PgEnmq0vcClqrqixu8dLUnBGGPMoUVL9ZExxpgQWFIwxhjjsqRgjDHGZUnBGGOMy5KCMcYYlyUF0+CJSFsReV1EckRkpYhkisjYeorlJBEZ7PN6sohMqI9YjAmk0aE3Mea3y9uHeyEwW1X/n3dZF2B0GN+zkc88PBWdBOwBvgRQ1WfCFYcxNWHjFEyDJiLDgRmqOizAuljgATxf1E2AJ1X1We8guDuAHcAxeCZcu1BVVUT6A38DmnvXX6KqW0RkCfA1MBSYA/wATMczsGwn8CcgAVgKlOGZzG4KnhG5e1R1pncw2jN4Zv7cAFymqoXeYy8DTgaSgYmq+nntfUrG/Mqqj0xD1xtYFWTdRDxTAgwABgBXiEg377q+wDQ8z9/oDgzxziv1OHCOqvYHXgJ8R8bHqWq6qj4M/Ac43jtZ3VzgJlXdiOdL/xFV7RPgi/0V4GZVPRbPqPTbfdY1UtWB3phux5gwseojE1VE5Ek8d/MH8EwVcKyIOHPmJOF5UMkB4CtVzfPu8zXQFSjCU3L4wFMrRSye6Zsdb/j83gl4wztxWRzw4yHiSgKSVfVT76LZwHyfTZzJDVd6YzEmLCwpmIYuCzjbeaGq14hIKrACz+RqU1T1Pd8dvNVHvvPmlOH5vyJAlqpmBHmvX3x+fxz4m6ou8qmOOhxOPE4sxoSFVR+Zhu5jIF5ErvJZ1tT773vAVd5qIUTkKO+DaoL5HmgtIhne7RuLSO8g2ybx6/TFF/ss3w20qLixqhYDhSJygnfRRcCnFbczJtzsjsM0aN7G4bOAR0TkJjwNvL8AN+OpnukKrPL2Usqnisc4quoBb1XT373VPY3wzLybFWDzO4D5IlKIJzE5bRVvAwtEZAyehmZfFwPPiEhTfp311Jg6Zb2PjDHGuKz6yBhjjMuSgjHGGJclBWOMMS5LCsYYY1yWFIwxxrgsKRhjjHFZUjDGGOP6/9aIQerS4peIAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot points and grid\n",
    "plt.contourf(xx, yy, grid_predictions, cmap=plt.cm.Paired, alpha=0.8)\n",
    "plt.plot(class1_x, class1_y, 'ro', label='I. setosa')\n",
    "plt.plot(class2_x, class2_y, 'kx', label='I. versicolor')\n",
    "plt.plot(class3_x, class3_y, 'gv', label='I. virginica')\n",
    "plt.title('Gaussian SVM Results on Iris Data')\n",
    "plt.xlabel('Pedal Length')\n",
    "plt.ylabel('Sepal Width')\n",
    "plt.legend(loc='lower right')\n",
    "plt.ylim([-0.5, 3.0])\n",
    "plt.xlim([3.5, 8.5])\n",
    "plt.show()\n",
    "\n",
    "# Plot batch accuracy\n",
    "plt.plot(batch_accuracy, 'k-', label='Accuracy')\n",
    "plt.title('Batch Accuracy')\n",
    "plt.xlabel('Generation')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend(loc='lower right')\n",
    "plt.show()\n",
    "\n",
    "# Plot loss over time\n",
    "plt.plot(loss_vec, 'k-')\n",
    "plt.title('Loss per Generation')\n",
    "plt.xlabel('Generation')\n",
    "plt.ylabel('Loss')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
